Improving performance and maintainability through refactoring in C++11
نویسنده
چکیده
Abstraction based programming has been traditionally seen as an approach that improves software quality at the cost of losing performance. In this paper, we explore the cost of abstraction by transforming the PARSEC benchmark fluidanimate application from low-level, hand-optimized C to a higher-level and more general C++ version that is a more direct representation of the algorithms. We eliminate global variables and constants, use vectors of a user-defined particle type rather than vectors of built-in types, and separate the concurrency model from the application model. The result is a C++ program that is smaller, less complex, and measurably faster than the original. The benchmark was chosen to be representative of many applications and our transformations are systematic and based on principles. Consequently, our techniques can be used to improve the performance, flexibility, and maintainability of a large class of programs. The handling of concurrency issues has been collected into a small new library, YAPL.
منابع مشابه
An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality
Refactoring is the process of improving the design of existing code by changing its internal structure without affecting its external behaviour, with the main aims of improving the quality of software product. Therefore, there is a belief that refactoring improves quality factors such as understandability, flexibility, and reusability. However, there is limited empirical evidence to support suc...
متن کاملMaintainability versus Performance: What's the Effect of Introducing Polymorphism ?
The notion of refactoring —transforming the sourcecode of an object-oriented program without changing its external behavior— has been embraced by many objectoriented software developers as a way to accommodate changing requirements. If applied well, refactoring improves the maintainability of the software, however it is believed that it does so at the sake of performance. To investigate this tr...
متن کاملInvestigation for Software Power Consumption of Code Refactoring Techniques
Code refactoring technique focuses on enhancing the maintainability of software to extend its lifetime. However, there are other efforts to improve software qualities like performance or reliability as well as maintainability by using code refactoring techniques. Recently, as low-power software has become one of the critical issues in mobile environments, developing energyefficient software thr...
متن کاملRefactoring Prolog Code
Refactoring is a popular technique from the OO-community to restructure code: it aims at improving software readability, maintainability and extensibility. In this paper we apply the ideas of refactoring to Prolog programs. We present a catalogue of refactorings adapted to or specificly developed for Prolog. We also discuss ViPReSS, our semi-automatic refactoring browser, and our experience wit...
متن کاملMethod-Level Code Clone Modification using Refactoring Techniques for Clone Maintenance
Researchers focused on activities such as clone maintenance to assist the programmers. Refactoring is a well-known process to improve the maintainability of the software. Program refactoring is a technique to improve readability, structure, performance, abstraction, maintainability, or other characteristics by transforming a program. This paper contributes to a more unified approach for the pha...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015